# 类属性和对象属性
class Fish():
    # 类属性
    name = "鲫鱼"

    # 构造函数  对象的属性
    def __init__(self, weight, color):
        self.weight = weight
        self.color = color

    def swim(self):
        print(self.name, "我是一条鱼,游来游去!")


# 通过Fish类创建对象
jiyu = Fish(300, "银色")
shayu = Fish(9999, "白色")

# 访问类属性
# print(jiyu.name)  # 对象可以访问类属性
# print(Fish.name)  # 类可以访问类属性


# 访问对象的属性
# print(jiyu.weight)    # 对象可以访问对象的属性
# print(Fish.weight)    # 类不可以访问对象的属性

# 修改类属性
# Fish.name = "三文鱼"
# print(Fish.name)

# jiyu.name = "草鱼"
# print(jiyu.name)   # 对象不能修改类属性,只是动态的给该对象添加了一个属性
# print(shayu.name)


# 修改对象的属性
jiyu.weight = 987  # 对象可以修改对象的属性
print(jiyu.weight)

Fish.color = "骚粉" 
print(Fish.color)

'''
总结: 
1.类的属性通过类名访问, 对象的属性通过对象访问
2.类的属性一般通过类去修改, 对象属性通过对象去修改
'''
